package com.kurumi.medical.service;

import java.util.List;
import java.util.Map;

import com.kurumi.medical.util.Result;

public interface ExportDataService {
	
	/**
	 * 从oracle中获取婚姻列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getMarriagesByOracle();
	/**
	 * 从oracle中获取性别列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getSexByOracle();
	
	/**
	 * 从oracle中获取身份列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getIdentityByOracle();
	
	/**
	 * 从oracle中获取门诊住院列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getOutpByOracle();
	
	/**
	 * 从oracle中获取科室内外科属性列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getInternalOutByOracle();
	
	/**
	 * 从oracle中获取科室列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getOfficeByOracle();
	
	/**
	 * 从oracle中获取科室临床列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getClinicAttrByOracle();
	
	/**
	 * 从oracle中获取民族列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getNationByOracle();
	
	/**
	 * 从oracle中获取血型列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getBloodTypeByOracle();
	
	/**
	 * 从oracle中获取国籍列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getCountryByOracle();
	
	/**
	 * 从oracle中获取出生地列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getAreaByOracle();
	/**
	 * 从oracle中获取职业列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getProfessionByOracle();
	
	/**
	 * 从oracle中获取社会关系列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getRelationShipByOracle();
	
	/**
	 * 从oracle中获取入院方式列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getInHospTypeByOracle();
	
	/**
	 * 从oracle中获取入院病情列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getInHospStatusByOracle();
	
	/**
	 * 从oracle中获取出院方式列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getOutHospTypeByOracle();

	
	/**
	 * 从oracle中获取技术职务列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getTitileByOracle();
	
	/**
	 * 从oracle中获取工作职业列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getJobClassByOracle();
	
	/**
	 * 从oracle中获取费用类别业列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getChargeTypeByOracle();
	
	
	/**
	 * 从oracle中获取国际疾病列表信息
	 * @return
	 */
	List<Map<String,Object>> getDiagnosisByOracle();
	
	/**
	 * 从oracle中获取手术编码列表信息
	 * @return
	 */
	List<Map<String,Object>> getOperationsByOracle();
	
	
	/**
	 * 从oracle中获取员工列表信息
	 * @return
	 */
	List<Map<String,Object>> getStaffsByOracle();
	
	/**
	 * 将婚姻列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertMarrigeBatch(List<Map<String,Object>> list);
	 
	/**
	 * 将性别列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertSexBatch(List<Map<String,Object>> list);
	 
	/**
	 * 将身份列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertIdentityInfoBatch(List<Map<String,Object>> list);
	 
	/**
	 * 将科室门诊住院列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertOfficeOutpBatch(List<Map<String,Object>> list);
	 
	/**
	 * 将科室内外科属性列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertInternalOutBatch(List<Map<String,Object>> list);
	
	/**
	 * 将科室临床属性列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertClinicAttrBatch(List<Map<String,Object>> list);
	
	/**
	 * 将科室列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertOfficeBatch(List<Map<String,Object>> list);
	
	/**
	 * 将民族列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertNationBatch(List<Map<String,Object>> list);
	/**
	 * 将血型列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertBloodTypeBatch(List<Map<String,Object>> list);
	/**
	 * 将国籍列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertCountryBatch(List<Map<String,Object>> list);
	
	/**
	 * 将出生地列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertAreaBatch(List<Map<String,Object>> list);
	
	/**
	 * 将职业列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertProfessionBatch(List<Map<String,Object>> list);
	
	/**
	 * 将社会关系列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertRelationBatch(List<Map<String,Object>> list);
	
	/**
	 * 将入院方式列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertInHosTypeBatch(List<Map<String,Object>> list);
	/**
	 * 将入院病情列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertInHosStatusBatch(List<Map<String,Object>> list);

	/**
	 * 将出院方式列表信息批量插入到mysql中
	 * 
	 * @return true 插入成功   false 插入失败
	 */
	boolean insertOutHosTypeBatch(List<Map<String,Object>> list);
	
	/**
	 * 从oracle中获取列表信息
	 * 
	 * @return list
	 */
	List<Map<String,Object>> getDataByOracle(Map<String,Object> map);
	
	/**
	 * 根据表名将数据插入该表中
	 * 
	 * @param tableName mysql数据库表名
	 * @return
	 */
	List<Result> inserDataTable(List<Map<String,Object>> map,List<Map<String,Object>> otherList);

	void exportMedicalHospitalRecord();
	
	public List<Map<String, Object>> getOracleMedicalHospitalRecord();
	
	public int insertMysqlMedicalHospitalRecord(List<Map<String, Object>> medicalRecords);

}
